package cn.tedu.generic;

import javax.crypto.spec.PSource;

/*本类用于测试泛型的优点2*/
public class TestGeneric2 {
    public static void main(String[] args) {
        //需求:打印指定数组中的所有元素
        Integer[] a ={1,2,3,4,5,6,7,8,9,10};
        print(a);
        String[] b = {"大哥","二哥","三哥","四哥","五哥","六哥","小弟"};
        print(b);
        Double[] c ={6.0,6.6,6.66,6.666,6.6666};
        print(c);
    }

    /*1.泛型可以实现通用代码的编写,使用E表示元素的类型是Element元素
    * 2.泛型的语法要求:如果在方法上使用泛型,必须两处同时出现
    * 一个是传入参数的类型为泛型,一个是返回值前的泛型类型,表示这是一个泛型方法*/
    private static<E> void print(E[] e) {
//        for (int i = 0; i <e.length ; i++) {
//            System.out.println(e[i]);
//        }
        for(E abb:e){
            System.out.println(abb);
        }

    }
    private static void print2(Double[] abc) {
//        for (int i = 0; i < abc.length; i++) {
//            System.out.println(abc[i]);
//        }
        for(Double ab:abc){
            System.out.println(ab);
        }
    }

    private static void print1(String[] b) {
//        for (int i = 0; i <b.length ; i++) {
//            System.out.println(b[i]);
//        }
        for(String bvgh:b){
            System.out.println(bvgh);
        }
    }

//    private static void print(Integer[] array) {
//        //从数组的0号下标开始,
//        for (int i = 0; i <array.length ; i++) {
//            System.out.println(array[i]);
//        }
        /*高效for循环/foreach循环:
         *好处:比普通for循环写法简单,而且效率高
         *坏处:没有办法按照下标来操作值,只能从头到尾依次遍历所有数据
         *语法:for(1 2 :3){循环体}
         *3-要遍历的数据 1-每轮遍历到的数据的类型 2-变量名,可以随意起名*/

//        for(Integer a:array){
//            System.out.println(a);
//        }
//    }
}
